#ifndef _BSP_GPIO_H_
#define _BSP_GPIO_H_

#include <stdbool.h>
#include <stdint.h>

typedef enum
{
	IO_LED = 0,
	IO_PW  = 1,
	IO_BP,
	IO_LP,
	
	IO_FB_ON,
	IO_FB_CHG,
	IO_FB_CC2,

	IO_FB1,
	IO_FB2,
	IO_FB3,
	IO_FB4,
	IO_FB5,
	IO_FB6,
	IO_FB7,
	IO_FB8,
	IO_FB9,
	IO_FB10,
	IO_FB11,
	IO_FB12,

	IO_SW1,
	IO_SW2,
	IO_SW3,
	IO_SW4,
	IO_SW5,
	IO_SW6,
	IO_SW7,
	IO_SW8,
	IO_SW9,
	IO_SW10,
	IO_SW11,
	IO_SW12,
	IO_USART_RX_EN

}GPIO_PortDef;

typedef struct
{
	uint8_t  State; //0:ok,1:一级故障,2:二级故障,3:三级故障
	uint16_t HCnt;
	uint16_t LCnt;
	bool     Flag;
}OutPutPortDef;


typedef struct
{
    OutPutPortDef LEDCtrl;

    void (*finit)(void);
    void (*fwrite)(GPIO_PortDef,bool);
    void (*ftrigger)(GPIO_PortDef);
	bool (*fread)(GPIO_PortDef);
	void (*fledspark)(void);
} dv_DIDO_TypeDef;


extern void init_bsp_dido(void);
extern dv_DIDO_TypeDef dv_DIDO;

#endif
